#include <iostream>
using namespace std;

int ans[100000];
int flag[100000];

int main()
{
	int n;
	while(cin>>n)
	{
		int t=0;
		while(t<n)
		{
			cin>>ans[t];
			t++;
		}
		memset(flag,0,sizeof(flag));
		int res=0;
		for(int j=0;j<n;j++)
		{
			int mm=1;
			flag[j]=1;
			for(int k=0;k<j;k++)
			{
				if(ans[k]<ans[j])
				{
					mm=mm>flag[k]+1?mm:flag[k]+1;
				}
				else
				{
					
				}
			}
			flag[j]=mm;
			if(mm>res) res=mm;
		}
		cout<<res<<endl;
		
	}
}
